【已解决】Flask渲染模板 |
您所在的位置:网站首页 › flask 模板渲染 › 【已解决】Flask渲染模板 |
本博文源于Flask基础,旨在讲解如何用Flask渲染网页模板 实验效果flask是利用了Jianjia2模板,只需要知道flask如何调用Jinjia2即可。Flask提拱的render_template函数把Jinjia2模板引擎集成到了程序中,render_template函数第一个参数是模板的文件名。随后的参数就是个键值对,表示模板中变量对应的键值对。这里使用一个例子。 核心代码在项目中创建templates,文件夹结构如下 user.html如下: DOCTYPE html> hello Hello,{{name}}python核心代码如下 from flask import Flask,render_template app = Flask(__name__) # 视图函数 @app.route('/') def hello_world(): return render_template('index.html') @app.route('/user/') def show_user_profile(username): # 显示该用户名的用户信息 return render_template('user.html',name=username) if __name__ == '__main__': app.run(debug=True) Jinjia中的变量刚才使用的变量{{name}},现在学习一下常用的字典取出值的变量 从字典中取一个值:{{mydict['key']}}. 从列表中取一个值:{{mylist[3]}}. 从列表中取一个带索引的值:{{ mylist[myinvar]}}. 从对象的方法中取一个值:{{myobj.somemethod()}}.同样也可以用过滤器 Hello,{{name|capitalize}}常用过滤器 名称说明safe渲染时不转义capitalize把值的首字母转换成大写,其他字母转换成小写lower把值转换成小写形式upper把值转换成大写形式title把值中每个单词的首字母都转换成大写trim把值的首尾空格去掉striptags渲染之前把值中所有的HTML标签都删掉safe渲染时不转义 控制结构控制结构包括条件控制,循环控制 {% if user %} Hello, {{user}}! {% else %} Hello,Stranger! {% endif %}循环结构 {% for comment in comments %} {{ comment }} {% endfor %} python中的函数 {% macro render_comment(comment)%} {{ comment }} {% endmacro %} {% for comment in comments %} {{ render_comment(comment)}} {% endfor %} 导入宏另存为宏重复使用宏 {% import 'macros.html' as macros %} {% for comment in comments %} {{ macros.render_comment(comment)}} {% endfor %}`在这里插入代码片` {% include 'common.html'%} 模板继承 {% block head %} {%block title%}{% endblock %}-My Application {% block body %} {% endblock %}衍生模板 {% extends "base.html"%} {% block title %}Index{%endblock %} {% block head %} {{super()}} {% endblock %} {%block body%} Hello,World {% endblock %} 总结flask作为轻量级框架,挺不错的。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |